
/*
 * Hlpay-Plus aggregate payment system. Copyright
 * (c) 2022-2023 Hlpay Team Copyright has the right of final interpretation.
 */
package com.hlkj.pay.app.adminuser;

import com.hlkj.framework.common.pojo.CommonResult;
import com.hlkj.pay.vo.admin.req.user.*;
import com.hlkj.pay.vo.admin.resp.user.AdminUserDetailResp;
import com.hlkj.pay.vo.admin.resp.user.AdminUserResp;
/**
 * @author HlpayTeam
 * @date 2024/09/03 14:17
 */
public interface IAdminUserAppService {

    /**
     * 用户详情
     * @param userId
     * @return
     */
    CommonResult<AdminUserDetailResp> userDetail(Long userId);
	/**
	 * addUser
	 * @param adminUserAddReq
	 * @return
	 */
	CommonResult<Long> addUser(AdminUserAddReq adminUserAddReq);
	/**
	 * updateUser
	 * @param adminUserUpdateReq
	 * @return
	 */
	CommonResult<Void> updateUser(AdminUserUpdateReq adminUserUpdateReq);
	/**
	 * deleteUser
	 * @param userId
	 * @return
	 */
	CommonResult<Void> deleteUser(Long userId);
	/**
	 * assignUserRole
	 * @param adminUserAddRoleReq
	 * @return
	 */
	CommonResult<Void> assignUserRole(AdminUserAddRoleReq adminUserAddRoleReq);
	/**
	 * updatePwd
	 * @param adminUserUpdatePwdReq
	 * @return
	 */
	CommonResult<Void> updatePwd(AdminUserUpdatePwdReq adminUserUpdatePwdReq);

	/**
	 * updatePwd
	 * @param adminUserUpdateStatusReq
	 * @return
	 */
	CommonResult<Void> updateStatus(AdminUserUpdateStatusReq adminUserUpdateStatusReq);
	
	/**
	 * forgetPwd
	 * @param userForgetPwdReq
	 * @return
	 */
	CommonResult<String> resetPwd(Long userId);
	/**
	 * 通过账号查询用户
	 * @param account
	 * @return
	 */
	 CommonResult<AdminUserResp> queryUserByAccount(String account) ;
	/**
	 * 更新用户手机号
	 * @param adminUserPhoneUpdateReq
	 * @return
	 */
	CommonResult<Void> updatePhone(AdminUserPhoneUpdateReq adminUserPhoneUpdateReq);

}
